public class MinSubArrayLen {
    public int minSubArrayLen(int target, int[] nums) {
        //初始化左边界j,min(注意min初始化应该初始化为不可能出现的大值)
        int j=0;
        int min=nums.length+1;
        int sum=0;
        //向右边开始扩展窗口
        for (int i = 0; i < nums.length; i++) {
            sum+=nums[i];
            while (sum>=target){
                //及时保存sum>=target值时
                min=Math.min(min,i-j+1);
                sum-=nums[j++];
            }
        }
        //注意返回时需要确认能否找到最小子数组！！
        return min==nums.length+1?0:min;
    }

    public static void main(String[] args) {
        int [] nums={2,3,1,2,4,3};
        //System.out.println(minSubArrayLen(7,nums));
//        int [] nums={1,4,4};
//        System.out.println(minSubArrayLen(3,nums));
    }

}
